import '../entities/todo.dart';
import '../entities/todo_request.dart';

/// 待办仓库接口
abstract class TodoRepository {
  /// 获取待办任务列表
  Future<List<Todo>> getTodos({
    int? projectId,
    TodoStatus? status,
    int? assigneeId,
    DateTime? dueDateFrom,
    DateTime? dueDateTo,
  });

  /// 获取待办任务详情
  Future<Todo> getTodo(int todoId);

  /// 创建待办任务
  Future<Todo> createTodo(TodoCreateRequest request);

  /// 更新待办任务
  Future<Todo> updateTodo(int todoId, TodoUpdateRequest request);

  /// 删除待办任务
  Future<void> deleteTodo(int todoId);

  /// 获取项目下的待办任务
  Future<List<Todo>> getProjectTodos(int projectId);

  /// 获取我的待办任务
  Future<List<Todo>> getMyTodos();
}
